class EmployeeService(object):
    ''' 员工服务 '''
    def __init__(self):
        pass;

    def addUser(self):
        print('新增员工，转正')
        message = '员工姓名：张三，员工编号：0003312';
        ObServerTable().notice(message)

'''
核心类型需要两个
一个类型用来维护一个服务列表，增加，删除，通知
一个类型用来规范所有观察者的回调
'''
class ObServerBase(object):
    ''' 所有观察者的基类 '''
    def __init__(self):
        pass;

    #所有观察者的回调函数
    def CallBack(self, message):
        pass;

class ObServerTable(object):
    def __init__(self):
        #定义观察者列表
        self.serverList = [];
        self.serverList.append(UpdateEmployeeNo())
        self.serverList.append(NoticeCCHR())
        self.serverList.append(NoticeCCAI())

    def addServer(self, obj):
        self.serverList.append(obj);

    def notice(self, message):
        for x in self.serverList:
            x.CallBack(message);
            
class UpdateEmployeeNo(ObServerBase):
    def CallBack(self, message):
        print(message, '更新员工编号')
        
class NoticeCCHR(ObServerBase):
    def CallBack(self, message):
        print(message, '通知人事系统')

class NoticeCCAI(ObServerBase):
    def CallBack(self, message):
        print(message, '通知成交系统')

if __name__ == '__main__':
    emp = EmployeeService();
    emp.addUser();

